<?php
    $this->PhpExcel->Excel();
    $this->PhpExcel->titulo_hoja($nombretienda['Tienda']['nombre']);
    $variable=array('D1'=>'EMPRESA DE PROPIEDAD SOCIAL AGROPATRIA, S.A.  RIF: G200102144','D2'=>$nombretienda['Tienda']['nombre'].' - Caja:'.$nombreCaja,'D3'=>'Libro de Ventas','D4'=>'DESDE: '.$desde.'   HASTA: '.$hasta);
    $this->PhpExcel->titulos_dinamicos($variable);

    $ext = ($tipo == 1) ? 'xlsx' : 'ods';
    $nombre = "LIBRO_VENTA_".date("d_m_Y");

    $this->PhpExcel->hoja->getDefaultStyle()->applyFromArray(array('font' => array('name' => 'arial', 'size' => 10)));
    $this->PhpExcel->hoja->getStyle('D1:D4')->applyFromArray(array('font' => array('name' => 'verdana', 'bold' => true, 'size' => 12)))
                            ->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

    $arrStyleTitle = array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID,
                                            'startcolor' => array('rgb' => '81DAF5')),
                                            'font' => array('bold' => true,
                                            'color' => array('argb' => PHPExcel_Style_Color::COLOR_WHITE)),
                                            'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER));
    $arrStyleTitleuno = array('fill' => array('type' => PHPExcel_Style_Fill::FILL_SOLID,
                                            'startcolor' => array('rgb' => 'EFFBFB')));
    $arrborderTitleuno = array('style' => PHPExcel_Style_Border::BORDER_DASHDOT, 'color' => array('rgb' => '000000'));

    $this->PhpExcel->configura_celda('A', 5); //NRO
    $this->PhpExcel->configura_celda('B', 15); //FECHA
    $this->PhpExcel->configura_celda('C', 15); //RIF
    $this->PhpExcel->configura_celda('D', 60); //NOMBRE
    $this->PhpExcel->configura_celda('E', 20); //NRO FACTURA
    $this->PhpExcel->configura_celda('F', 20); //NRO CONTROL
    $this->PhpExcel->configura_celda('G', 20); //NRO NOTA DEBITO
    $this->PhpExcel->configura_celda('H', 20); //NRO NOTA CREDITO
    $this->PhpExcel->configura_celda('I', 15); //TRANSACCION
    $this->PhpExcel->configura_celda('J', 20); //NRO FACT AFECT
    $this->PhpExcel->configura_celda('K', 25); //TOTAL VENTAS CON IVA
    $this->PhpExcel->configura_celda('L', 25); //VENTAS INT NO GRABADAS
    $this->PhpExcel->configura_celda('M', 20); //BASE IMPONIBLE 8%
    $this->PhpExcel->configura_celda('N', 10); //8%
    $this->PhpExcel->configura_celda('O', 20); //IMPUESTO 8%
    $this->PhpExcel->configura_celda('P', 30); //BASE IMPONIBLE ALICUOTA GRAL
    $this->PhpExcel->configura_celda('Q', 20); //ALICUOTA GRAL
    $this->PhpExcel->configura_celda('R', 30); //IMPUESTO ALICUOTA GRAL
    $this->PhpExcel->configura_celda('S', 20); //IMPUESTO IVA%
    $this->PhpExcel->configura_celda('T', 20); //IVA RETENIDO

    $index_title = 6;

    $j = 0;
    $tit[] = array('Nro', 'STR', 'C');
    $tit[] = array('Fecha', 'STR', 'C');
    $tit[] = array('Rif', 'STR', 'C');
    $tit[] = array('Nombre o Razón Social del Comprador', 'STR', 'C');
    $tit[] = array('Nro Factura', 'STR', 'C');
    $tit[] = array('Nro Control', 'STR', 'C');
    $tit[] = array('Nro Nota Débito', 'STR', 'C');
    $tit[] = array('Nro Nota Crédito', 'STR', 'C');
    $tit[] = array('Transacción', 'STR', 'C');
    $tit[] = array('Nro Fact. Afect.', 'STR', 'C');
    $tit[] = array('Total Ventas con IVA', 'STR', 'C');
    $tit[] = array('Ventas Int. No Grabadas', 'STR', 'C');
    $tit[] = array('Base Imponible 8%', 'STR', 'C');
    $tit[] = array('8%', 'STR', 'C');
    $tit[] = array('Imp. 8%', 'STR', 'C');
    $tit[] = array('Base Imponible Alicuota Gral.', 'STR', 'C');
    $tit[] = array('Alicuota Gral.', 'STR', 'C');
    $tit[] = array('Impuesto Alicuota Gral.', 'STR', 'C');
    $tit[] = array('Impuesto IVA%', 'STR', 'C');
    $tit[] = array('IVA Retenido', 'STR', 'C');

    foreach ($tit as $columnTitle) {
        $this->PhpExcel->valor_celda($j, $index_title, $columnTitle);
        $oColumn = $this->PhpExcel->obtener_columna($j, $index_title);
        $oRow = $this->PhpExcel->obtener_fila($j, $index_title);
        $this->PhpExcel->hoja->getStyle($oColumn . $oRow)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
        $this->PhpExcel->hoja->getStyle($oColumn . $oRow)->applyFromArray($arrStyleTitle);
        $this->PhpExcel->hoja->getStyle($oColumn . $oRow)->getBorders()->getAllBorders()->applyFromArray($arrborderTitleuno);
        $j++;
    }

    $this->PhpExcel->hoja->setAutoFilter("A$index_title:{$oColumn}{$oRow}");

    $fila = 7;
    $nro=1;

    $detalle=$data[$tienda];
    for($a=0;$a<count($detalle);$a++) {
        $valores = array();
        $valores[] = array($nro, 'STR', 'C');
        $valores[] = array($detalle[$a]['fecha'], 'STR', 'C');
        $valores[] = array($detalle[$a]['documento'], 'STR', 'C');
        $valores[] = array($this->Interfaz->mayuscula($detalle[$a]['nombre']), 'STR', 'L');
        $valores[] = array($detalle[$a]['numero'], 'STR', 'C');
        $valores[] = array($detalle[$a]['numero_control'], 'STR', 'C');
        $valores[] = array($detalle[$a]['nota_d'], 'STR', 'C');
        $valores[] = array($detalle[$a]['nota_c'], 'STR', 'C');
        $valores[] = array($detalle[$a]['transaccion'], 'STR', 'C');
        $valores[] = array($detalle[$a]['referencia'], 'STR', 'C');
        $valores[] = array($detalle[$a]['monto'], 'N', 'R');
        $valores[] = array($detalle[$a]['venta_sin_iva'], 'N', 'R');
        $valores[] = array($detalle[$a]['base_parcial'], 'N', 'R');
        $valores[] = array($detalle[$a]['iva_parcial'], 'N', 'C');
        $valores[] = array($detalle[$a]['monto_iva_parcial'], 'N', 'R');
        $valores[] = array($detalle[$a]['base_parcial_gral'], 'N', 'R');
        $valores[] = array($detalle[$a]['iva_gral'], 'N', 'C');
        $valores[] = array($detalle[$a]['monto_iva_gral'], 'N', 'R');
        $valores[] = array($detalle[$a]['total_iva'], 'N', 'R');
        $valores[] = array("0.00", 'N', 'R');

        $nro++;
        $columna = 0;

        foreach ($valores as $valor) {
            $this->PhpExcel->valor_celda($columna, $fila, $valor);
            $oColumn = $this->PhpExcel->obtener_columna($columna, $fila);
            $oRow = $this->PhpExcel->obtener_fila($columna, $fila);
            if ($fila % 2 == 0) {
                $this->PhpExcel->hoja->getStyle($oColumn . $oRow)->applyFromArray($arrStyleTitleuno);
            }
            $this->PhpExcel->hoja->getStyle($oColumn . $oRow)->getBorders()->getAllBorders()->applyFromArray($arrborderTitleuno);
            $this->PhpExcel->hoja->getStyle(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00);
            $columna++;
        }
        $fila++;
    }

    $res=$fila+5;
    $this->PhpExcel->xls->setActiveSheetIndex(0);
    $abc = $this->PhpExcel->xls->getActiveSheet();

    //estilo texto debajo de resumen
    $abc->getStyle('D'.($res+1).':D'.($res+7))->applyFromArray(array('font' => array('name' => 'verdana', 'bold' => true, 'size' => 9)));
    $abc->getStyle('K'.$fila.':T'.$fila)->applyFromArray(array('font' => array('name' => 'verdana', 'bold' => true, 'size' => 9)))
                                        ->getNumberFormat()->setFormatCode("0.00");
    $abc->getStyle('E'.($res+1).':E'.($res+7))->getNumberFormat()->setFormatCode("0.00");
    //TOTAL GENERAL
    $abc->setCellValue('J'.$fila, 'TOTAL GENERAL')->getStyle('J'.$fila)->applyFromArray(array('font' => array('name' => 'verdana', 'bold' => true, 'size' => 9)))
                                            ->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    //total ventas con iva
    $abc->setCellValue('K'.$fila, '=SUM(K7:K'.($fila-1).')');
    //total ventas int no grabadas
    $abc->setCellValue('L'.$fila, '=SUM(L7:L'.($fila-1).')');
    //total bases imponibles 8%
    $abc->setCellValue('M'.$fila, '=SUM(M7:M'.($fila-1).')');
    //total impuesto 8%
    $abc->setCellValue('O'.$fila, '=SUM(O7:O'.($fila-1).')');
    //total base imponible alicuota gral
    $abc->setCellValue('P'.$fila, '=SUM(P7:P'.($fila-1).')');
    //total impuesto alicuota gral
    $abc->setCellValue('R'.$fila, '=SUM(R7:R'.($fila-1).')');
    //total impuesto iva
    $abc->setCellValue('S'.$fila, '=SUM(S7:S'.($fila-1).')');

    //RESUMEN
    $abc->setCellValue('D'.$res, 'RESUMEN')->getStyle('D'.$res)->applyFromArray(array('font' => array('name' => 'verdana', 'bold' => true, 'size' => 9)))
                                            ->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $res++;
    $abc->setCellValue('D'.$res, 'Total de Ventas: Incluyendo IVA');
    $abc->setCellValue('E'.$res, '=SUM(K7:K'.($fila-1).')'); $res++;
    $abc->setCellValue('D'.$res, 'Ventas Exentas');
    $abc->setCellValue('E'.$res, '=SUM(L7:L'.($fila-1).')'); $res++;
    $abc->setCellValue('D'.$res, 'Ventas Gravables as 8,00%');
    $abc->setCellValue('E'.$res, '=SUM(M7:M'.($fila-1).')'); $res++;
    $abc->setCellValue('D'.$res, 'IVA Cobrado al 8,00%');
    $abc->setCellValue('E'.$res, '=SUM(O7:O'.($fila-1).')'); $res++;
    $abc->setCellValue('D'.$res, 'Ventas gravables Alicuota Gral.');
    $abc->setCellValue('E'.$res, '=SUM(P7:P'.($fila-1).')'); $res++;
    $abc->setCellValue('D'.$res, 'IVA Cobrado Alicuota Gral.');
    $abc->setCellValue('E'.$res, '=SUM(R7:R'.($fila-1).')'); $res++;
    $abc->setCellValue('D'.$res, 'Total IVA Cobrado');
    $abc->setCellValue('E'.$res, '=SUM(S7:S'.($fila-1).')');
    $this->PhpExcel->mostrar($nombre, $ext);
?>